home *** CD-ROM | disk | FTP | other *** search
/ Merciful 1 / Merciful - Disc 1.iso / software / m / multi_media_demo_maker / multimediademomakerv1.0.dms / multimediademomakerv1.0.adf / sources / Transform.S < prev    next >
Text File  |  1990-11-13  |  6KB  |  292 lines

  1. ;-----------------------------------------------------------------------
  2. ; Beispiel eines Vektorobjekt-Sourcecodes
  3. ;-----------------------------------------------------------------------
  4. ; Komplexes transformierendes Vektorobjekt (Anim1)
  5. ;-----------------------------------------------------------------------
  6. ;(Seka-format)
  7. ;Benutzung:
  8. ;a (return)
  9. ;wi (return)
  10. ;name (return)
  11. ;start (return)
  12. ;end (return)
  13. ;Danach kann das Objekt vom Demomaker aus unter "name" eingeladen werden.
  14. ;------------------------------------------------------------------------
  15.  
  16. start:
  17. dc.l    "VECT"    ;Kennung fuer Objekt!!!
  18.  
  19. filledob1:
  20. dc.l TESTPOINTS-filledob2    
  21. dc.l TESTFLAECHEN-filledob2    
  22. dc.w 300        
  23. dc.w 0,$8,$a,$c,$44f,$f0f,$0f,$f00    ;8 Farben
  24. dc.b 0    ;0-keine Syncronisation
  25. dc.b 0    ;0-normales Objekt
  26. dc.w 0    ;jetzt ohne Funktion
  27. dc.l 0    ;keine Zusatzroutinen
  28. dc.l 0    ;...
  29.  
  30. dc.l anim1points-filledob1    ;offset zu Punktstruktur
  31. dc.l anim1flaechen-filledob1    ;offset zu Flaechenstruktur
  32. dc.w 500            ;zoom auf 500
  33. dc.w 0,$44f,$c,$c0c,$f4f,$f44,$c00,$8    ;8 Farben
  34. dc.b 0    ;0-keine Syncronisation
  35. dc.b 1    ;1-komplexes Objekt
  36. dc.w 0    ;0-keine Flaechenumrandung
  37. dc.l vinit-filledob1    ;offset zur Initroutine
  38. dc.l vdo-filledob1    ;offset zur Transformroutine
  39.  
  40. ;Initroutine...
  41.  
  42. vinit:    lea vp1(pc),a1    ;Pointer initialisieren
  43.     move.w #1,(a1)
  44.     lea anim1p(pc),a2    ;Punkte des 1.Objekts
  45.     lea anim2p(pc),a3    ;Punkte des 2.Objekts
  46.     move #48,d1        ;Anzahl der Punkte
  47.     move.w #20,d5        ;20 Durchlaeufe
  48.     move.l 4(a0),a6        ;Routine transadds holen
  49.     jsr (a6)        ;Transformadds berechnen
  50.     bsr transme1
  51.     rts
  52. vp1:dc.w 0
  53.  
  54. ;Transformieren...
  55.  
  56. vdo:    move.w vp1(pc),d0    ;Pointer erhoehen
  57.     addq.w #1,d0
  58.     cmp.w #80,d0        ;Ende erreicht?
  59.     blo ohoh
  60.     moveq #0,d0        ;auf null setzen
  61. ohoh:    lea vp1(pc),a2
  62.     move.w d0,(a2)
  63.     cmp #20,d0        ;schon 20?
  64.     blo nochnich        ;warten
  65.     cmp #40,d0        ;schon 40?
  66.     blo transme1        ;tranformieren
  67.     cmp #60,d0        ;schon 60?
  68.     blo nochnich        ;warten
  69.  
  70. ;zurueck transformieren...
  71.  
  72.     lea anim1points+2(pc),a6;Destination setzen
  73.     moveq #48,d0        ;Punktanzahl
  74.     move.l 12(a0),a1    ;Routine holen
  75.     jsr (a1)        ;Zuruecktransformieren
  76. nochnich:rts
  77.  
  78. ;Transformieren...
  79.  
  80. transme1:lea anim1points+2(pc),a6;Destination setzen
  81.     moveq #48,d0        ;Punktanzahl
  82.     move.l 8(a0),a1        ;Routine holen
  83.     jsr (a1)        ;Transformieren
  84.     rts
  85.  
  86. anim1POINTS:    ;Punktstruktur, die angezeigt wird...
  87. dc.w 48        ;Punktanzahl
  88.         ;(die neuen Transformationen werden
  89.         ;jeden Frame neu hierhin kopiert...)
  90. dc.w 40,0,-30
  91. dc.w 10,0,-10
  92. dc.w 10,0,0
  93. dc.w 30,0,0
  94. dc.w 30,0,10
  95. dc.w 50,0,30
  96. dc.w 28,28,-30
  97. dc.w 7,7,-10
  98. dc.w 7,7,0
  99. dc.w 21,21,0
  100. dc.w 21,21,10
  101. dc.w 35,35,30
  102. dc.w 0,40,-30
  103. dc.w 0,10,-10
  104. dc.w 0,10,0
  105. dc.w 0,30,0
  106. dc.w 0,30,10
  107. dc.w 0,50,30
  108. dc.w -28,28,-30
  109. dc.w -7,7,-10
  110. dc.w -7,7,0
  111. dc.w -21,21,0
  112. dc.w -21,21,10
  113. dc.w -35,35,30
  114. dc.w -40,0,-30
  115. dc.w -10,0,-10
  116. dc.w -10,0,0
  117. dc.w -30,0,0
  118. dc.w -30,0,10
  119. dc.w -50,0,30
  120. dc.w -28,-28,-30
  121. dc.w -7,-7,-10
  122. dc.w -7,-7,0
  123. dc.w -21,-21,0
  124. dc.w -21,-21,10
  125. dc.w -35,-35,30
  126. dc.w 0,-40,-30
  127. dc.w 0,-10,-10
  128. dc.w 0,-10,0
  129. dc.w 0,-30,0
  130. dc.w 0,-30,10
  131. dc.w 0,-50,30
  132. dc.w 28,-28,-30
  133. dc.w 7,-7,-10
  134. dc.w 7,-7,0
  135. dc.w 21,-21,0
  136. dc.w 21,-21,10
  137. dc.w 35,-35,30
  138.  
  139. anim1FLAECHEN:    ;Flaechen des Objektes
  140. dc.w 41
  141. dc.w 4,1,0,1,7,6,0
  142. dc.w 4,4,1,2,8,7,1
  143. dc.w 4,5,2,3,9,8,2
  144. dc.w 4,4,3,4,10,9,3
  145. dc.w 4,1,4,5,11,10,4
  146.  
  147. dc.w 4,2,6,7,13,12,6
  148. dc.w 4,3,7,8,14,13,7
  149. dc.w 4,6,8,9,15,14,8
  150. dc.w 4,3,9,10,16,15,9
  151. dc.w 4,2,10,11,17,16,10
  152.  
  153. dc.w 4,1,12,13,19,18,12
  154. dc.w 4,4,13,14,20,19,13
  155. dc.w 4,5,14,15,21,20,14
  156. dc.w 4,4,15,16,22,21,15
  157. dc.w 4,1,16,17,23,22,16
  158.  
  159. dc.w 4,2,18,19,25,24,18
  160. dc.w 4,3,19,20,26,25,19
  161. dc.w 4,6,20,21,27,26,20
  162. dc.w 4,3,21,22,28,27,21
  163. dc.w 4,2,22,23,29,28,22
  164.  
  165. dc.w 4,1,24,25,31,30,24
  166. dc.w 4,4,25,26,32,31,25
  167. dc.w 4,5,26,27,33,32,26
  168. dc.w 4,4,27,28,34,33,27
  169. dc.w 4,1,28,29,35,34,28
  170.  
  171. dc.w 4,2,30,31,37,36,30
  172. dc.w 4,3,31,32,38,37,31
  173. dc.w 4,6,32,33,39,38,32
  174. dc.w 4,3,33,34,40,39,33
  175. dc.w 4,2,34,35,41,40,34
  176.  
  177. dc.w 4,1,36,37,43,42,36
  178. dc.w 4,4,37,38,44,43,37
  179. dc.w 4,5,38,39,45,44,38
  180. dc.w 4,4,39,40,46,45,39
  181. dc.w 4,1,40,41,47,46,40
  182.  
  183. dc.w 4,2,42,43,1,0,42
  184. dc.w 4,3,43,44,2,1,43
  185. dc.w 4,6,44,45,3,2,44
  186. dc.w 4,3,45,46,4,3,45
  187. dc.w 4,2,46,47,5,4,46
  188.  
  189. dc.w 8,7,0,6,12,18,24,30,36,42,0
  190. dc.w 8,7,47,41,35,29,23,17,11,5,47
  191.  
  192. anim1p:        ;Punkte des 1.Objektes
  193. dc.w 40,0,-30
  194. dc.w 10,0,-10
  195. dc.w 10,0,0
  196. dc.w 30,0,0
  197. dc.w 30,0,10
  198. dc.w 50,0,30
  199. dc.w 28,28,-30
  200. dc.w 7,7,-10
  201. dc.w 7,7,0
  202. dc.w 21,21,0
  203. dc.w 21,21,10
  204. dc.w 35,35,30
  205. dc.w 0,40,-30
  206. dc.w 0,10,-10
  207. dc.w 0,10,0
  208. dc.w 0,30,0
  209. dc.w 0,30,10
  210. dc.w 0,50,30
  211. dc.w -28,28,-30
  212. dc.w -7,7,-10
  213. dc.w -7,7,0
  214. dc.w -21,21,0
  215. dc.w -21,21,10
  216. dc.w -35,35,30
  217. dc.w -40,0,-30
  218. dc.w -10,0,-10
  219. dc.w -10,0,0
  220. dc.w -30,0,0
  221. dc.w -30,0,10
  222. dc.w -50,0,30
  223. dc.w -28,-28,-30
  224. dc.w -7,-7,-10
  225. dc.w -7,-7,0
  226. dc.w -21,-21,0
  227. dc.w -21,-21,10
  228. dc.w -35,-35,30
  229. dc.w 0,-40,-30
  230. dc.w 0,-10,-10
  231. dc.w 0,-10,0
  232. dc.w 0,-30,0
  233. dc.w 0,-30,10
  234. dc.w 0,-50,30
  235. dc.w 28,-28,-30
  236. dc.w 7,-7,-10
  237. dc.w 7,-7,0
  238. dc.w 21,-21,0
  239. dc.w 21,-21,10
  240. dc.w 35,-35,30
  241.  
  242. anim2p:        ;Punkte des zweiten Objektes
  243. dc.w 10,0,-30
  244. dc.w 60,0,0
  245. dc.w 30,0,0
  246. dc.w 30,0,20
  247. dc.w 60,0,20
  248. dc.w 10,0,50
  249. dc.w 7,7,-30
  250. dc.w 42,42,0
  251. dc.w 21,21,0
  252. dc.w 21,21,20
  253. dc.w 42,42,20
  254. dc.w 7,7,50
  255. dc.w 0,10,-30
  256. dc.w 0,60,0
  257. dc.w 0,30,0
  258. dc.w 0,30,20
  259. dc.w 0,60,20
  260. dc.w 0,10,50
  261. dc.w -7,7,-30
  262. dc.w -42,42,0
  263. dc.w -21,21,0
  264. dc.w -21,21,20
  265. dc.w -42,42,20
  266. dc.w -7,7,50
  267. dc.w -10,0,-30
  268. dc.w -60,0,0
  269. dc.w -30,0,0
  270. dc.w -30,0,20
  271. dc.w -60,0,20
  272. dc.w -10,0,50
  273. dc.w -7,-7,-30
  274. dc.w -42,-42,0
  275. dc.w -21,-21,0
  276. dc.w -21,-21,20
  277. dc.w -42,-42,20
  278. dc.w -7,-7,50
  279. dc.w 0,-10,-30
  280. dc.w 0,-60,0
  281. dc.w 0,-30,0
  282. dc.w 0,-30,20
  283. dc.w 0,-60,20
  284. dc.w 0,-10,50
  285. dc.w 7,-7,-30
  286. dc.w 42,-42,0
  287. dc.w 21,-21,0
  288. dc.w 21,-21,20
  289. dc.w 42,-42,20
  290. dc.w 7,-7,50
  291. end:
  292.